This function is lets you process small symbol-pattern with scrolling and transposing. It is a sort of gen-morph. The input symbol-pattern is first scrolled by the amount of scroll. If it is 0 no scrolling will take place. Next the scrolled result is transposed by the amount of first value in transpose-pattern. It is appended to the output repeat number of times. Then the next transpose-pattern value is used and scroll is increased by its value. If you have scroll value 2 then next time the symbol-pattern is scrolled by 4 before transposing, and so on.
(gen-transpose-scroll '(a b c d) 2 '(0 1 2 3) 1)
--> (a b c d a b c d e b c d e b c d e f c d e f c d e f g d e f g d)
Here's more useful example what you might do. Let's first build a pattern of length 8 based on resynthesis of white noise.
(setq seedpat1
(vector-to-symbol a h
(vector-quantize 7 8
(vector-resynthesize 3
(gen-noise-white 256 1 0.21215454) nil t))))
--> (h c f g a f g f)
Then make another pattern by taking inversion of it.
(setq seedpat2 (symbol-inversion 'e seedpat1))
--> (b g d c i d c d)
Now make transpose patterns picking up randomly some values from